#ifndef WIDGET_H
#define WIDGET_H

#include <QPushButton>
#include <QSerialPort>
#include <QWidget>
#include "mycombobox.h"
#include "customthread.h"

QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE

class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = nullptr);
    ~Widget();

private slots:
    void on_btncloseorOpen_clicked(bool checked);       //打开或关闭串口

    void on_btnSendContex_clicked();            //发送数据

    void on_SerialData_readyToRead();           //准备去读数据


    void on_checkBoxSendInTime_clicked(bool checked);       //定时发送

    void on_btnrevClear_clicked();                      //接收清楚

    void on_btnrevSave_clicked();                       //保存接收

    void time_reflash();                                //更新系统时间

    void on_checkBoxHexDisplay_clicked(bool checked);   //Hex显示

    void on_btnhideTable_clicked(bool checked);         //隐藏面板

    void on_btnHideHistory_clicked(bool checked);         //隐藏历史

    void refreshSerialName();                           //刷新串口名字

    void on_command_button_clicked();                   //序号被点击

    void on_checkBox_send_clicked(bool checked);

    void buttons_handler();

private:
    QSerialPort *serialPort;    //声明一个对象，串口
    int writeCntTotal;          //统计发送了多少字节
    int readCntTotal;          //统计发送了多少字节
    QString SendBack;           //返回上一次输入的数据
    QString MyTime;             //系统时间
    bool serialStatus;          //确认状态
    QTimer *timer;              //定时发送
    void getSysTime();          //获取系统时间

    QTimer *buttonConTimer;     //
    int buttonIndex;
    CustomThread *mythread;



    QList <QPushButton *> buttons;






    Ui::Widget *ui;
};
#endif // WIDGET_H
